
create PROC [dbo].[Subsidy_InsertToTmpHavaleh_Over_Under]
    @assigedCreditValue MONEY,
    @TmpId NUMERIC(18, 0),
    @orderTrace VARCHAR(15),
    @TotPrice MONEY
AS
DECLARE @id BIGINT = ISNULL(SCOPE_IDENTITY(), 0);
BEGIN TRY
    BEGIN TRAN;
    DECLARE @OverUnderPercent REAL = 0;
    DECLARE @autoidOverUnder INT =
            (
                SELECT AutoId FROM dbo.Over_Under WITH (NOLOCK) WHERE  Active = 1 AND 
CONVERT(VARCHAR(10), GETDATE(),111) BETWEEN AzTarikh AND TaTarikh  AND ShowPrice=4
            );
    DECLARE @orderTraceId UNIQUEIDENTIFIER =
            (
                SELECT Id FROM TmpHeadH WITH (NOLOCK) WHERE Id_Havaleh = @TmpId
            );
    IF (@TotPrice > 0)
        SET @OverUnderPercent = 100 - (((@TotPrice - @assigedCreditValue) / @TotPrice) * 100);
    ELSE
        SET @OverUnderPercent = 0;


  /* UPDATE dbo.Tmp_Over_Under_Factor
    SET Price = @assigedCreditValue,
        [Percent] = @OverUnderPercent
    WHERE Id_Havaleh = @TmpId
          AND Code_Over_Under = @autoidOverUnder;
		  */ 
  INSERT INTO  dbo.Tmp_Over_Under_Factor (  Id_Havaleh,  Name,  Code_Over_Under, Type, Price,[Percent],
    Act_Code, Auto_id_Havaleh,Price_Row, Guy_Code, Max_Price,  Max_percent,  ShowPrice)
	SELECT TOP(1) @TmpId,Name,AutoId,Type,@assigedCreditValue,@OverUnderPercent,Act_Code,0,0,'10000',Max_Price,Max_Percent,ShowPrice FROM dbo.Over_Under WITH (NOLOCK)
    WHERE Action_Code = 7 AND Active = 1 AND CONVERT(VARCHAR(10), GETDATE(),111) BETWEEN AzTarikh AND TaTarikh
	AND ShowPrice=4
    UPDATE TmpHeadH
    SET Items = -2,
        Tot_Kahandeh = @assigedCreditValue,
        Number_bar = @orderTrace
    WHERE Id_Havaleh = @TmpId
          AND Kind_Flag = '7';
    COMMIT TRAN;
    RETURN @id;
END TRY
BEGIN CATCH
    ROLLBACK TRAN;
    SET @id = -1;
    RETURN @id;
END CATCH;
